
import { request } from "../../utils/request";

Page({ 
  /**
   * 页面的初始数据
   */
  data: {
    viewTab:[], // 导航栏
    viewid:'', // 当前 id
    viedeoList:[], // 视频列表 
    videoId: '', // 视频id标识
    videoUpdateTime: [], // 记录video播放的时长
    isTriggered: false, // 标识下拉刷新是否被触发
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) { 
    this.viewTablist()   // 导航栏数据
  },
  // 导航栏  
  async viewTablist(){
    const res = await request("/video/group/list")   
    this.setData({
      viewTab:res.data.slice(0,14),
      viewid:res.data[0].id
    })  
     // 视频数据 
     this.videolist(this.data.viewid)
  },
  // 视频列表
  async videolist(id){
    const res = await request("/video/group",{ id  })   
    if(res.msg == '需要登录'){ 
      wx.navigateTo({
        url: '/pages/login/index',
      }) 
      return
    }
    let index = 0 
    res.datas.map(item=>{
      item.id = index++
      return item
    }) 
    this.setData({
      viedeoList : res.datas,
      isTriggered: false
    })
  },

  // 单击每一项
  changeNav(e){ 
    let viewid = e.target.dataset.id 
    this.setData({
      viewid
    }) 
    // 点击跟换视频
    this.videolist(viewid) 
  },
  
  // 点击视频
  handpay(e){  
    let vid = e.currentTarget.id
    // 关闭上一个播放得视频
    // this.vid != vid && this.videoContext && this.videoContext.stop() 
    // this.vid = vid 
    // 更新data中videoId的状态数据
    this.setData({
      videoId: vid
    }) 
    // 创建控制 video 实例对象
    this.videoContext = wx.createVideoContext(vid)
    this.videoContext.play()
  },
   
  // 监听视频播放进度的回调
  handleTimeUpdate(event){
    let videoTimeObj = {vid: event.currentTarget.id, currentTime: event.detail.currentTime};
    let {videoUpdateTime} = this.data;
    /*
    * 思路： 判断记录播放时长的videoUpdateTime数组中是否有当前视频的播放记录
    *   1. 如果有，在原有的播放记录中修改播放时间为当前的播放时间
    *   2. 如果没有，需要在数组中添加当前视频的播放对象
    *
    * */
    let videoItem = videoUpdateTime.find(item => item.vid === videoTimeObj.vid);
    if(videoItem){ // 之前有
      videoItem.currentTime = event.detail.currentTime;
    }else { // 之前没有
      videoUpdateTime.push(videoTimeObj);
    }
    // 更新videoUpdateTime的状态
    this.setData({
      videoUpdateTime
    })
  },
  
  // 视频播放结束调用的回调
  handleEnded(event){
    // 移除记录播放时长数组中当前视频的对象
    let {videoUpdateTime} = this.data;
    videoUpdateTime.splice(videoUpdateTime.findIndex(item => item.vid === event.currentTarget.id), 1);
    this.setData({
      videoUpdateTime
    })
  },

  // 下拉刷新
  handleRefresher(){
    console.log(111);  
    this.videolist(this.data.viewid)
  },

  // 滚动到底部触发
  handleToLower(){
    wx.showToast({title: '你已经拉到最底部了',icon:"none"})
  },

  onShareAppMessage({from}){
    console.log(from);
    if(from == 'button'){
      return {
        title:"来自button得转发",
        page:"/pages/video/video" 
      }
    }else{
      return {
        title:"来自meua得转换",
        page:"/pages/video/video" 

      }
    }
  },

 


  // 搜索跳转 到 视频
  toSearch(){
    wx.navigateTo({
      url: "/pages/search/search",
    })
  }

})